<?php

class Medewerker extends CI_Controller {

	// in deze functie word de Medewerker_model aangesproken om alle Medewerkeren data uit de database te halen
	// en deze vervolgens in een tabel weer te geven.
	public function index(){
		$this->load->model('medewerker_model');
		$this->loadMedewerkerData();
	}
	
	// in deze functie worden eerst de input velde gevalideerd (controller)
	// daarna word bekeken in de Medewerker_model of deze Medewerker al bestaat in de database, als dat niet zo is
	// word deze in de database opgeslagen (model).
	public function newMedewerker(){
		if($this->validationRules()) {
			if ($this->form_validation->run() == FALSE){
				$this->loadMedewerkerData();
			} else {
				$this->load->model('medewerker_model');
				$this->medewerker_model->newMedewerker();
				$this->load->model('client_model');
				$data['title'] = 'ICB Digitale thuiszorg documentatie systeem';
				$data['slogan'] = 'Maakt thuiszorg eenvoudiger en geeft de mogelijkheid om digitaal een archief te onderhouden.';
				$data['clienten'] = $this->client_model->getClient();
				$data['medewerkers'] = $this->medewerker_model->getMedewerker();
				$data['addMedewerker'] = true;
				$this->load->view('home', $data);
				
			}
		}
	}
	
	// deze functie valideerd de update die je wil uitvoeren en wanneer goed gekeurd word deze in de database gezet.
	public function updateMedewerker(){
		if($this->validationRules()) {
				if ($this->form_validation->run() == FALSE){
					$this->loadMedewerkerData();
				} else {
					$this->load->model('medewerker_model');
					$this->medewerker_model->updateMedewerker();
					$id = $this->uri->segment(4);
					redirect(base_url() . 'index.php/medewerker/gotoMedewerkerProfile/id/' . $id);
				}
			}
	}
	
	// in deze functie word de geselecteerde rij in de input velden gestopt.
	public function editMedewerker(){
		$id = $this->uri->segment(4);
		$this->load->model('medewerker_model');
		$data['editMedewerkerGegevens'] = $this->medewerker_model->editMedewerker($id);
		
		$data['title'] = 'ICB Digitale thuiszorg documentatie systeem';
		$data['slogan'] = 'Maakt thuiszorg eenvoudiger en geeft de mogelijkheid om digitaal een archief te onderhouden.';
		$data['main_content'] = 'medewerkers_view';
		$this->load->view('includes/template', $data);
	}
	
	// in deze functie word de Medewerker model aangesproken om vervolgens
	// de geselecteerde Medewerker verwijderd uit de database.
	public function deleteMedewerker(){
		$id = $this->uri->segment(4);
		$this->load->model('medewerker_model');
		$this->medewerker_model->deleteMedewerker($id);
		
		$this->load->model('medewerker_model');
		$this->load->model('client_model');
		$data['title'] = 'ICB Digitale thuiszorg documentatie systeem';
		$data['slogan'] = 'Maakt thuiszorg eenvoudiger en geeft de mogelijkheid om digitaal een archief te onderhouden.';
		$data['clienten'] = $this->client_model->getClient();
		$data['medewerkers'] = $this->medewerker_model->getMedewerker();
		$data['addMedewerker'] = TRUE;
		$this->load->view('home', $data);
	}
	
	// in deze functie worden de juiste models aangesproken om tot alle data te komen 
	// Om deze models gaat het:
	// - contactPersoonModel
	// - medicijnModel
	// - adresModel
	// - getBoodschappenSchrift
	// - taakModel
	public function loadMedewerkerData(){
		$data = array();
		$activeFunction = $this->uri->segment(2);
		$id = $this->uri->segment(4);
		$this->load->model('medewerker_model');
		
		$data['medewerkerGegevens'] = $this->medewerker_model->getMedewerker();
		
		if ($activeFunction == 'editMedewerker'){
			$data['editMedewerkerGegevens'] = $this->medewerker_model->editMedewerker($id);
		}
		
		$data['title'] = 'ICB Digitale thuiszorg documentatie systeem';
		$data['slogan'] = 'Maakt thuiszorg eenvoudiger en geeft de mogelijkheid om digitaal een archief te onderhouden.';
		$data['main_content'] = 'medewerkers_view';
		$this->load->view('includes/template', $data);
	}
	
	// hier worden de validatie regels ingesteld voor het aanmaken/wijzigen van een Medewerker.
	private function validationRules(){
		$this->form_validation->set_rules('voornaam', 'Voornaam', 'required');
		$this->form_validation->set_rules('achternaam', 'Achternaam', 'required');
		$this->form_validation->set_rules('vaste_telefoon_nr', 'Vaste telefoon nummer', 'required|min_length[8]');
		$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
		$this->form_validation->set_rules('mobiel_telefoon_nr', 'Mobiele telefoon nummer', 'required');
		$this->form_validation->set_rules('postcode', 'Postcode', 'required');
		$this->form_validation->set_rules('straat', 'Straat', 'required');
		$this->form_validation->set_rules('huisnummer', 'Huisnummer', 'required');
		$this->form_validation->set_rules('woonplaats', 'Woonplaats', 'required');
		$this->form_validation->set_rules('wijk', 'Wijk', 'required');
		$this->form_validation->set_rules('huisnummer', 'Huisnummer', 'required');
		
		return true;
	}
	
	public function gotoMedewerkerProfile(){
//		$this->load->model('medicijn_model');
//		$data['medicijn'] = $this->medicijn_model->getMedewerkerMedicijn($this->uri->segment(4));
		
//		$this->load->model('boodschapschrift_model');
//		$data['boodschapschrift'] = $this->boodschapschrift_model->getBoodschapschrift($this->uri->segment(4));
		
		$this->load->model('taak_model');
		$data['taak'] = $this->taak_model->getTakenByMedewerker($this->uri->segment(4));
		
//		
//		$this->load->model('contactpersoon_model');
//		$data['contactPersoon'] = $this->contactPersoon_model->getContactPersoonById($this->uri->segment(4));
		
		$this->load->model('medewerker_model');
		$data['medewerkerGegevens'] = $this->medewerker_model->getMedewerker($this->uri->segment(4));
		$data['clientenGegevens'] = $this->medewerker_model->getClientsByMedewerker($this->uri->segment(4));
		$data['currentMedewerker'] = $this->uri->segment(4);
		
		$data['title'] = 'ICB Digitale thuiszorg documentatie systeem';
		$data['taken'] = 'Hier kan je taken aanpassen, verwijderen en aanmaken';
		$data['slogan'] = 'Maakt thuiszorg eenvoudiger en geeft de mogelijkheid om digitaal een archief te onderhouden.';
		$data['main_content'] = 'medewerker_profile_view';
		$this->load->view('includes/template', $data);
	}
}
